package com.share.api.order.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.share.common.core.annotation.Excel;
import com.share.common.core.web.domain.BaseEntity;
import com.share.user.domain.UserVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class OrderInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderNo;

    /** 动力银行编号 */
    @Excel(name = "动力银行编号")
    private String powerBankNo;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 开始站点ID */
    @Excel(name = "开始站点ID")
    private Long startStationId;

    /** 开始站点名称 */
    @Excel(name = "开始站点名称")
    private String startStationName;

    /** 开始柜子编号 */
    @Excel(name = "开始柜子编号")
    private String startCabinetNo;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /** 结束站点ID */
    @Excel(name = "结束站点ID")
    private Long endStationId;

    /** 结束站点名称 */
    @Excel(name = "结束站点名称")
    private String endStationName;

    /** 结束柜子编号 */
    @Excel(name = "结束柜子编号")
    private String endCabinetNo;

    /** 持续时间 */
    @Excel(name = "持续时间")
    private Integer duration;

    /** 费用规则 */
    @Excel(name = "费用规则")
    private String feeRule;

    /** 费用规则ID */
    @Excel(name = "费用规则ID")
    private Long feeRuleId;

    /** 总金额 */
    @Excel(name = "总金额")
    private BigDecimal totalAmount;

    /** 扣除金额 */
    @Excel(name = "扣除金额")
    private BigDecimal deductAmount;

    /** 实际支付金额 */
    @Excel(name = "实际支付金额")
    private BigDecimal realAmount;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 交易ID */
    @Excel(name = "交易ID")
    private String transactionId;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间",width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间",width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;


    /**订单账单表*/
    @TableField(exist = false)
    @Schema(description = "订单账单表")
    private List<OrderBill> orderBillList;


    /**用户类*/
    @TableField(exist = false)
    @Schema(description = "用户类")
    private UserVo userInfoVo;


}
